package com.zyd.blog.personal.service;

/**
 *  UserNo表的业务逻辑层接口
 * @author mfy
 */
public interface UserService {

    /**
     * 得到用户详细信息
     * @param userId    用户id
     * @param selfId    自身id
     * @return  用户信息
     */
    Object getUserInfo(Long userId,Long selfId);

    /**
     * 得到userId用户的关注信息
     * @param userId    用户id
     * @param focusId   关注用户id
     * @return  用户信息
     */
    Object getFocusInfo(Long userId, Long focusId);

    /**
     * 得到粉丝信息
     * @param userId    用户id
     * @return  粉丝列表
     */
    Object getFansInfo(Long userId);

    /**
     * 关注其他用户
     * @param userId    用户id
     * @param focusUserId   所关注id
     * @return  关注结果
     */
    Object focusUser(Long userId, Long focusUserId);

    /**
     * 取消关注
     * @param userId    用户id
     * @param focusUserId   所关注用户id
     * @return  操作结果
     */
    Object noFocus(Long userId, Long focusUserId);

    /**
     * 收藏作品
     * @param userId    用户id
     * @param productionId  作品id
     * @return  操作结果
     */
    Object collectionProduction(Long userId, Long productionId);

    /**
     * 取消收藏
     * @param userId    用户id
     * @param productionId  作品id
     * @return  操作结果
     */
    Object noCollectionProduction(Long userId, Long productionId);

    /**
     * 得到作品点赞数量
     * @param productionId  作品id
     * @return  操作结果
     */
    Object getThumbNum(Long productionId);

    /**
     * 点赞作品
     * @param userId    用户id
     * @param productionId  作品id
     * @return  操作结果
     */
    Object thumb(Long userId, Long productionId);

    /**
     * 取消点赞
     * @param userId    用户id
     * @param productionId  作品id
     * @return  操作结果
     */
    Object noThumb(Long userId, Long productionId);

    /**
     * 得到分享
     * @param userId    用户id
     * @param productionId  作品id
     * @return  单个分享或者分享列表
     */
    Object getShare(Long userId, Long productionId);

    /**
     * 分享作品
     * @param userId    用户id
     * @param productionId  作品id
     * @return  操作结果
     */
    Object share(Long userId, Long productionId);

    /**
     * 取消分享
     * @param shareId   分享id
     * @return  操作结果
     */
    Object noShare(Long shareId);

    /**
     * 得到评论
     * @param productionId  作品id
     * @return  评论列表
     */
    Object getComment(Long productionId);

    /**
     * 评论作品
     * @param userId    用户id
     * @param productionId  作品id
     * @param commentId 评论id
     * @param content   评论内容
     * @param ch    评论方式
     * @return  操作结果
     */
    Object comment(Long userId, Long productionId, Long commentId, String content, String ch);

    /**
     * 删除作品的评论
     * @param userId    用户id
     * @param commentPrId   评论id
     * @return  操作结果
     */
    Object deleteCommentPr(Long userId,Long commentPrId);

    /**
     * 删除评论的回复
     * @param userId    用户id
     * @param commentCoId   回复id
     * @return  操作结果
     */
    Object deleteCommentCo(Long userId,Long commentCoId);

    /**
     * 得到设计师详细情况
     * @param userId    用户id
     * @return  设计设详情
     */
    Object getDesignerInfo(Long userId);

    /**
     * 得到关注用户的关注情况
     * @param userId    用户id
     * @param otherId   关注用户id
     * @return  情况列表
     */
    Object getFacousOfFacous(Long userId,Long otherId);

    /**
     * 得到粉丝用户的关注情况
     * @param userId    用户id
     * @param otherId   粉丝id
     * @return  情况列表
     */
    Object getFacusOfFan(Long userId,Long otherId);

}
